﻿using System;

namespace ExpressionBuilder.Common
{
    /// <summary>
    /// 定义筛选器语句之间的连接方式。
    /// </summary>
    public enum Connector
    {
        /// <summary>
        /// 确定需要同时满足当前AND和下一个筛选器语句。
        /// </summary>
        And,

        /// <summary>
        /// 确定需要满足当前或下一个筛选器语句。
        /// </summary>
        Or
    }

    /// <summary>
    /// 将类型分组为简单组，并将支持的操作映射到每个组。
    /// </summary>
    [Flags]
    public enum TypeGroup
    {
        /// <summary>
        /// 默认类型组，仅支持"等于"和"不等于"。
        /// </summary>
        Default = -1,

        /// <summary>
        /// 支持所有与文本相关的操作。
        /// </summary>
        Text = 1,

        /// <summary>
        /// 支持所有与数字相关的操作。
        /// </summary>
        Number = 2,

        /// <summary>
        ///支持布尔相关操作。
        /// </summary>
        Boolean = 4,

        /// <summary>
        /// 支持所有与日期相关的操作。
        /// </summary>
        Date = 8,

        /// <summary>
        /// 支持可为空的相关操作.
        /// </summary>
        Nullable = 16
    }
}